import request from "@/utils/request";

const DATASOURCE_BASE_URL = "/biz/dbapi";

const DbapiAPI = {

	/**
	 * 获取数据源分组列表
	 *
	 * @param queryParams 查询参数
	 * @returns 数据源分组结果
	 */
	getGroups(queryParams: ApiGroupQuery) {
	  return request<any, any>({
		url: `${DATASOURCE_BASE_URL}/group/list`,
		method: "get",
		params: queryParams,
	  });
	},
	
	/**
	 * 保存数据源分组
	 *
	 * @param data 数据源分组表单数据
	 */
	saveGroup(data: any) {
	  return request({
	    url: `${DATASOURCE_BASE_URL}/group/save`,
	    method: "post",
	    data: data,
	  });
	},
	
	/**
	 * 删除数据源分组
	 *
	 * @param ids 数据源分组ID，多个以英文逗号(,)分隔
	 */
	deleteGroupByIds(ids: string) {
	  return request({
	    url: `${DATASOURCE_BASE_URL}/group/${ids}`,
	    method: "delete",
	  });
	},
	
  /**
   * 获取数据源分页列表
   *
   * @param queryParams 查询参数
   * @returns 数据源分页结果
   */
  getPage(queryParams: any) {
    return request<any, PageResult<ApiPageVO[]>>({
      url: `${DATASOURCE_BASE_URL}/pages`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 保存数据源
   *
   * @param data 数据源表单数据
   */
  save(data: any) {
    return request({
      url: `${DATASOURCE_BASE_URL}/save`,
      method: "post",
      data: data,
    });
  },
  
  /**
   * 删除数据源
   *
   * @param ids 数据源ID，多个以英文逗号(,)分隔
   */
  deleteByIds(ids: string) {
    return request({
      url: `${DATASOURCE_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
  
  /**
   * 下拉框
   */
  options(queryParams: any) {
    return request<any, any>({
      url: `${DATASOURCE_BASE_URL}/options`,
      method: "get",
      params: queryParams,
    });
  },
  
  /**
   * 校验
   */
  test(id: string) {
    return request({
      url: `${DATASOURCE_BASE_URL}/test/${id}`,
      method: "post",
    });
  },
  
  geReqArguments(queryParams: any) {
    return request<any, any>({
      url: `${DATASOURCE_BASE_URL}/req_arguments/list`,
      method: "get",
      params: queryParams,
    });
  },
  
  saveReqArguments(data: any) {
    return request({
      url: `${DATASOURCE_BASE_URL}/req_arguments/save`,
      method: "post",
      data: data,
    });
  },
  
  deleteArgumentByIds(ids: string) {
    return request({
      url: `${DATASOURCE_BASE_URL}/req_arguments/${ids}`,
      method: "delete",
    });
  },
  
  getSqls(queryParams: any) {
    return request<any, any>({
      url: `${DATASOURCE_BASE_URL}/sql/list`,
      method: "get",
      params: queryParams,
    });
  },
  
  saveSql(data: any) {
    return request({
      url: `${DATASOURCE_BASE_URL}/sql/save`,
      method: "post",
      data: data,
    });
  },
  
  deleteSqlByIds(ids: string) {
    return request({
      url: `${DATASOURCE_BASE_URL}/sql/${ids}`,
      method: "delete",
    });
  },
  
  sendPost(url?:string,data?: any) {
    return request({
      url: url,
      method: "post",
      data: data,
    });
  },
};

export default DbapiAPI;

/**
 * 数据源分组查询参数
 */
export interface ApiGroupQuery{
  keywords?: string;
}

export interface ApiPageVO {
  /**
   * ID
   */
  id: string;
  /**
   * 分组ID
   */
  groupId: string;
  /**
   * 名称
   */
  name: string;
  /**
   * 标识
   */
  code: string;
  /**
   * 请求地址
   */
  uri: string;
  
  /**
   * 开启Token校验
   */
  isToken: string;
  
  /**
   * 序号
   */
  sort: number;
  
  /**
   * 创建时间
   */
  createTime: Date;
  /**
   * 创建时间
   */
  updateTime: Date;
}

/** 表单对象 */
export interface DbapiGroupForm {
  /** ID */
  id?: string;
  /** 父ID */
  parentId?: string;
  /** 名称 */
  name?: string;
  /** 排序 */
  sort?: number;
}

/** 用户表单类型 */
export interface ApiForm {
/**
   * ID
   */
  id: string;
  /**
   * 分组ID
   */
  groupId: string;
  /**
   * 名称
   */
  name: string;
  /**
   * 标识
   */
  code: string;
  /**
   * 请求地址
   */
  uri: string;
  
  /**
   * 开启Token校验
   */
  isToken: string;
  
  /**
   * 序号
   */
  sort: number;
}
